package Negocio;

import java.util.ArrayList;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import DTO.AgenteOficialVO;
import DTO.ProveedorVO;
import SRV.DireccionSRV;
import SRV.FacturaProveedorSRV;

@Entity
@DiscriminatorValue("agentesOficiales")
public class AgenteOficial extends Proveedor
{
	
	public AgenteOficial(long cuit, String nombre, Direccion direccion) 
	{
		super(cuit, nombre, direccion);
	}
	
	public AgenteOficial() {}

	public Proveedor toBusiness(ProveedorVO agente){
	    Direccion direccion = new Direccion();
	    DireccionSRV daoDir =  new DireccionSRV();
	    direccion = daoDir.getDireccion(agente.getDireccion());
	    
	    AgenteOficial devuelto = new AgenteOficial(agente.getCuit(), agente.getNombre(), direccion);
	    
	    FacturaProveedor factura = new FacturaProveedor();
	    FacturaProveedorSRV daoFact = new FacturaProveedorSRV();
	    
	    for (Integer idAux : agente.getFacturas()){
	    	factura = daoFact.getFacturaProvvedor(idAux);
	    	devuelto.agregarFactura(factura);
	    }

	    return devuelto;
	}
	
	public AgenteOficialVO toVO(){
	    ArrayList<Integer> facturasVO = new ArrayList<Integer>();
	    for (FacturaProveedor aux : getFacturas()){
		facturasVO.add(aux.getIdFacturaProveedor());
	    }
	    
	    AgenteOficialVO agenteVO =  new AgenteOficialVO(getCuit(), this.getNombre(), this.getDireccion().getIdDireccion(), facturasVO);
	    return agenteVO;
	}
	
	public boolean esCarrier(){
		return false;
	}
	
	public boolean esTallerGeneral(){
		return false;
	}
	
	public boolean esTallerOficial(){
		return false;
	}
	
	public boolean esAgenteOficial(){
		return true;
	}
	
	public boolean esEmpresaSeguros(){
		return false;
	}
	
	public boolean esEmpresaSeguridad(){
		return false;
	}
	
}
